const Router = require("koa-router");
const router=new Router({
    prefix:"/test"
});

router.all("/test-all",async function(ctx){
    console.log(ctx.method);
    ctx.body={
        state:true,
        msg:"请求成功",
        method:ctx.method
    };
});

// router.get("/test-all",async function(ctx){
//     console.log(ctx.method);
//     ctx.body={
//         state:true,
//         msg:"请求成功",
//         method:ctx.method
//     };
// });

// router.post("/test-all",async function(ctx){
//     console.log(ctx.method);
//     ctx.body={
//         state:true,
//         msg:"请求成功",
//         method:ctx.method
//     };
// });

// router.delete("/test-all",async function(ctx){
//     console.log(ctx.method);
//     ctx.body={
//         state:true,
//         msg:"请求成功",
//         method:ctx.method
//     };
// });
// router.options("/test-all",async function(ctx){
//     console.log(ctx.method);
//     ctx.body={
//         state:true,
//         msg:"请求成功",
//         method:ctx.method
//     };
// });

let users=[
    {id:1,name:"alice",sex:"男"},
    {id:2,name:"tom",sex:"男"}
];
router.get("/users",async function(ctx){
    // ddsddsds
    ctx.body=users;
});
router.post("/users",async function(ctx){
    users.push({
        id:3,name:"cici",sex:"女"
    });
    ctx.body=users;
});

router.options("/users",async function(ctx){
   ctx.body="sss";
});
router.delete("/users",async function(ctx){
    users.length=0;
    ctx.body=users;
});

let stus=[
    {id:'10001',name:"alice",sex:"男"},
    {id:'10002',name:"tom",sex:"男"},
    {id:'10003',name:"lucy",sex:"女"}
];
router.get("/stu/:id",async function(ctx){
    // console.log(ctx.params);//对象
    let stu;
    stus.forEach(function(item,index){
        if(ctx.params.id==item.id){
            stu=item;
        }
    });
    if(stu){
        ctx.body=stu;
    }else{
        ctx.body={
            msg:"没有该用户"
        }
    }
});
router.options("/stu/:id",async function(ctx){
    
    ctx.body=stus;
});
router.get("/stu",async function(ctx){
    // console.log(ctx.params);//对象
    ctx.body=stus;
});
router.delete("/stu/:id",async function(ctx){
    stus.forEach(function(item,index){
        if(ctx.params.id==item.id){
            stus.splice(index,1);//删除数组中的一个元素
        }
    });
    ctx.body=stus;
});

router.post("/stu/:id/:name/:sex",async function(ctx){
    stus.push(ctx.params);
    ctx.body=stus;
});

router.get("/query",async function(ctx){
    console.log(ctx.query);
    ctx.body={
        state:true,
        msg:"查询成功",
        result:{
            username:ctx.query.username,
            tel:ctx.query.tel
        }
    }
});


router.post("/body",async function(ctx){
    console.log(ctx.request.body);
    ctx.body={
        state:true,
        msg:"查询成功",
        result:{
            username:ctx.request.body.username,
            tel:ctx.request.body.password,
            // arr:ctx.request.body
        }
    }
});

router.post("/upload",async function(ctx){
    console.log(ctx.request.body);//普通文本数据
    console.log(ctx.request.files);
    // console.log(ctx.origin);//当前服务器的地址
    ctx.body={
        username:ctx.request.body.username,
        tel:ctx.request.body.tel,
        pic:ctx.origin+"/upload/"+ctx.request.files.pic.newFilename
      
    }
});

// const token=require("jsonwebtoken");//加载模块
router.get("/login",async function(ctx){
    let user={
        id:100,
        username:"tom"
    };

    console.log(ctx.token);
    // token.sign(需要加密的数据对象,加密秘钥,token的相关配置)
    // let tokenStr=token.sign(user,"itany secret",{expiresIn: '1h'});//最后参数的指的是有效期
    let tokenStr=ctx.token.sign(user,"aaaaa",{expiresIn: '1h'});
    ctx.body={
        state:true,
        msg:"登录成功",
        token:"Bearer "+tokenStr
    }
});





module.exports={
    "testRouter": router
};